package com.gzx.qc.modular.voice.check.entity.vo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fhs.core.trans.anno.Trans;
import com.fhs.core.trans.constant.TransType;
import com.fhs.core.trans.vo.TransPojo;
import com.gzx.qc.modular.voice.check.entity.GzxVoiceCheck;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import vip.xiaonuo.common.sensitive.annotation.Sensitive;
import vip.xiaonuo.common.sensitive.core.SensitiveStrategy;

/**
 * @author zjt
 * @description
 * @date 2025/2/5 16:54
 */
@Data
@AutoMapper(target = GzxVoiceCheck.class)
public class GzxVoiceCheckVo implements TransPojo {
    /**
     * 自增主键
     */
    @ExcelIgnore
    private String id;

    /**
     * 通话序列号，唯一标识一次通话
     */
    @ExcelProperty(value = "呼叫序列号")
    private String callId;

    /**
     * 被叫号码，即通话的对方号码
     */
    @ExcelProperty(value = "被叫")
    @Sensitive(strategy = SensitiveStrategy.PHONE)
    private String liaisonPhone;

    /**
     * 坐席账号
     */
    @ExcelProperty(value = "坐席账号")
    private String agentName;

    /**
     * 坐席姓名
     */
    @ExcelProperty(value = "坐席姓名")
    private String userName;

    /**
     * 所属公司ID
     */
    @ExcelIgnore
    @Trans(type = TransType.RPC, targetClassName = "vip.xiaonuo.sys.modular.org.entity.SysOrg", fields = "name", alias = "deptId", ref = "deptName", serviceName = "snowy-web-app")
    private Long deptId;

    @ExcelProperty(value = "所属公司")
    private String deptName;

    /**
     * 录音地址，存储通话录音文件的URL
     */
    @ExcelIgnore
    private String fileUrl;

    /**
     * 创建时间
     */
    @ExcelProperty(value = "检查时间")
    private String createTime;

    /**
     * 质检审核结果
     */
    @ExcelIgnore
    @Trans(type = TransType.DICTIONARY, key = "voiceCheckStatus")
    private String qualityApproveStatus;

    /**
     * 质检审核备注
     */
    @ExcelProperty(value = "分公司审核")
    private String qualityApproveRemark;

    /**
     * 主管审核结果
     */
    @ExcelIgnore
    @Trans(type = TransType.DICTIONARY, key = "voiceCheckStatus")
    private String supervisorApproveStatus;

    /**
     * 主管审核备注
     */
    @ExcelProperty(value = "总部审核")
    private String supervisorApproveRemark;
    /**
     * 分总审核结果
     */
    @ExcelIgnore
    @Trans(type = TransType.DICTIONARY, key = "voiceCheckStatus")
    private String masterApproveStatus;

    /**
     * 分总审核备注
     */
    @ExcelProperty(value = "终审")
    private String masterApproveRemark;
    /**
     * AI审核结果
     */
    @ExcelIgnore
    @Trans(type = TransType.DICTIONARY, key = "voiceCheckStatus")
    private String aiApproveStatus;

    /**
     * Ai推理理由
     */
    @ExcelProperty(value = "AI审核")
    private String aiReasonContent;


    @ExcelProperty(value = "命中关键字")
    private String keyword;
}
